home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / µSim 1.0.5 / FabLibsƒ / UtilsCommon.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-28  |  7.0 KB  |  249 lines  |  [TEXT/CWIE]

  1. #ifndef __FSPCOMPAT__
  2. #include <FSpCompat.h>
  3. #endif
  4.  
  5. #if defined(FabSystem7orlater)
  6.  
  7. #define    FabStandardGetFile(a,b,c,d)    StandardGetFile(a,b,c,d)
  8. #define    FabStandardPutFile(a,b,c)    StandardPutFile(a,b,c)
  9.  
  10. #else
  11.  
  12. #include    "Utils6.h"
  13.  
  14. #endif
  15.  
  16. enum
  17. {
  18. kCacheMask   = 0x0010,
  19. kNoCacheMask = 0x0020
  20. };
  21.  
  22.  
  23. /* Menu list resource IDs */
  24. enum menures {
  25. kRes_Menu_Apple = 128,
  26. kRes_Menu_File,
  27. kRes_Menu_Edit
  28. };
  29.  
  30. enum edititems {
  31. kMItem_Undo = 1,
  32. kMItem_Cut = 3,
  33. kMItem_Copy,
  34. kMItem_Paste,
  35. kMItem_Clear,
  36. kMItem_Select_All
  37. };
  38.  
  39. enum {
  40. kUndoKey = 0x7A10,
  41. kCutKey = 0x7810,
  42. kCopyKey = 0x6310,
  43. kPasteKey = 0x7610,
  44. kHelpKey = 0x7205,
  45. kFwdDel = 0x757F,
  46. kHomeKey = 0x7301,
  47. kEndKey = 0x7704,
  48. kPgUpKey = 0x740B,
  49. kPgDnKey = 0x790C,
  50. kClearKey = 0x471B,
  51. kEscapeKey = 0x351B,
  52. kEnterKey = 0x4C03
  53. };
  54.  
  55. /* for KeyState */
  56. enum {
  57. kCommandKeyCode = 55,
  58. kShiftKeyCode,
  59. kCapsLockKeyCode,
  60. kOptionKeyCode,
  61. kControlKeyCode
  62. };
  63.  
  64. enum {
  65. kWantRestart = false,
  66. kWantShutdown = true
  67. };
  68.  
  69. enum {
  70. kCreat = 'FABR',
  71. kAEAlert = 'ALRT'
  72. };
  73.  
  74. enum {
  75. kDITLItem_AboutPICT = 3,
  76. kItemUserName = 3,
  77. kItemCompany,
  78. kItemAddress,
  79. kItemCity,
  80. kItemState,
  81. kItemZIP,
  82. kItemCountry,
  83. kItemE_mail,
  84. kItemPhone,
  85. kItemFAX,
  86. kItemQuantity,
  87. kItemCopyFrom,
  88. kItemComments,
  89. kItemTotals = 27
  90. };
  91.  
  92. typedef struct {
  93.     FSSpec    destFile;
  94.     ScriptCode    theScript;
  95.     } StdFileResult, *StdFileResultPtr;
  96.  
  97. /* dialog box manager */
  98.  
  99. struct dialogitems {
  100.     short    itemNumber;
  101.     short    group;
  102.     long    refCon;
  103.     };
  104.  
  105. typedef struct dialogitems dialogItems, *dialogItemsPtr;
  106.  
  107. //=============================================================================
  108. #pragma internal on
  109.  
  110. /* WantThisHandleSafe locks high the handle and returns the previous state */
  111.  
  112. #if GENERATING68K
  113. #pragma parameter __D0 WantThisHandleSafe(__A0)
  114. extern pascal SignedByte WantThisHandleSafe(Handle myH) = {0xA069, 0x1F00, 0xA064, 0xA029, 0x101F};
  115. #else
  116. SignedByte WantThisHandleSafe(Handle myH);
  117. #endif
  118.  
  119. #if GENERATING68K
  120. #pragma parameter MyZeroBuffer(__A0,__D1)
  121. extern pascal void MyZeroBuffer(long *p, long s) = {0x7000, 0x20C0, 0x51C9, 0xFFFC };
  122.  
  123. #pragma parameter MyFillBuffer(__A0,__D1,__D0)
  124. extern pascal void MyFillBuffer(long *p, long s, long filler) = {0x20C0, 0x51C9, 0xFFFC };
  125.  
  126. #pragma parameter __D0 mySwap(__D0)
  127. extern pascal long mySwap(long s) = {0x4840 };
  128. #else
  129. void MyZeroBuffer(long *p, long s);
  130. void MyFillBuffer(long *p, long s, long filler);
  131. long mySwap(long s);
  132. #endif
  133.  
  134. OSErr AddSTRRes2Doc(FSSpec *theDoc, OSType myFcrea, OSType myFtype, short STRid, ScriptCode lScript);
  135. OSErr AddSTRHand2Doc(FSSpec *theDoc, OSType myFcrea, OSType myFtype, StringHandle msgString, ScriptCode lScript);
  136. OSErr AddRes2Doc(FSSpec *theDoc, Handle thisHandle, ResType rType, short rID);
  137. void SendmyAE(AEEventClass, AEEventID myAEvtID, AEIdleProcPtr, AESendMode theMode);
  138. void SendmyAEPShort(AEEventClass myclass, AEEventID myAEvtID, AEIdleProcPtr IdleFunct, AESendMode theMode, short theAlert);
  139. void ZoomRectToRect(RectPtr startingRect, RectPtr endingRect, short numofDivs);
  140. void ZoomRectToRectAutoGrafPort(RectPtr startingRect, RectPtr endingRect, short numofDivs);
  141. Handle NewHandleGeneral(Size blockSize);
  142. Handle Get1ResGeneral(ResType theType, short theID);
  143. OSType FindFinderAtEaseProcess(ProcessSerialNumber *);
  144. OSType FindFinderProcess(void);
  145. OSErr SendShutdownToFinder(AEIdleProcPtr, Boolean);
  146. short StopAlert_UPP(short alertID, ModalFilterProcPtr filterProc);
  147. short StopAlert_AE(short alertID, ModalFilterProcPtr filterProc, AEIdleProcPtr IdleFunct);
  148. short CautionAlert_UPP(short alertID, ModalFilterProcPtr filterProc);
  149. short CautionAlert_AE(short alertID, ModalFilterProcPtr filterProc, AEIdleProcPtr IdleFunct);
  150. short NoteAlert_UPP(short alertID, ModalFilterProcPtr filterProc);
  151. short NoteAlert_AE(short alertID, ModalFilterProcPtr filterProc, AEIdleProcPtr IdleFunct);
  152. short Alert_UPP(short alertID, ModalFilterProcPtr filterProc);
  153. short Alert_AE(short alertID, ModalFilterProcPtr filterProc, AEIdleProcPtr IdleFunct);
  154.  
  155.  
  156. void FlashButton(DialogRef dlg, short item);
  157. void OutlineButton(DialogRef oftheDialog, short myItem);
  158.  
  159. short HandleDialog(ModalFilterProcPtr filterProc,
  160.                     dialogItemsPtr things,
  161.                     void (*initProc)(DialogRef),
  162.                     void (*userProc)(DialogRef, Handle, short),
  163.                     short resId);
  164.  
  165. /* about box manager */
  166.  
  167. void myAbout(void (*theIdleProc)(void),
  168.             UserItemUPP DrawQTPict,
  169.             void (*UpdateProc)(EventRecord *),
  170.             void (*ActivateProc)(EventRecord *)
  171.             );
  172. Handle OpenSplash(DialogRef *, UserItemUPP DrawQTPict);
  173. void DisposeSplash(Handle, DialogRef);
  174. void myMovableModalAbout(
  175.             Point *aboutTopLeft,
  176.             Point *creditsTopLeft,
  177.             void (*AdjustMenus)(TEHandle),
  178.             void (*Handle_My_Menu)(long),
  179.             void (*DomyKeyEvent)(EventRecord *),
  180.             void (*DoUpdate)(EventRecord *),
  181.             void (*DoActivate)(EventRecord *),
  182.             void (*DoHiLevEvent)(EventRecord *),
  183.             void (*DoOSEvent)(EventRecord *),
  184.             void (*DoIdle)(void),
  185.             unsigned long minSleep
  186.             );
  187.  
  188. void CopyEMailAddrToClip(void);
  189. void CopyWWWURLToClip(short);
  190. Boolean GetFontNumber(ConstStr255Param fontName, short *fontNum);
  191. Boolean CmdPeriod(EventRecord *theEvent);
  192. Boolean CmdPeriodOrEsc(EventRecord *theEvent);
  193. Boolean CmdPeriodOrEscConfirm(EventRecord *theEvent, short alertID, ModalFilterProcPtr filterProc);
  194. void HandleRegistration(/*ModalFilterProcPtr filterProc,*/
  195.                         Point *regDTopLeft,
  196.                         long (*regCfgInfo)(Handle, long, StringPtr),
  197.                         void (*AdjustMenus)(TEHandle),
  198.                         void (*Handle_My_Menu)(long),
  199.                         void (*DomyKeyEvent)(EventRecord *),
  200.                         void (*DoUpdate)(EventRecord *),
  201.                         void (*DoActivate)(EventRecord *),
  202.                         void (*DoHiLevEvent)(EventRecord *),
  203.                         void (*DoOSEvent)(EventRecord *),
  204.                         void (*DoIdle)(void),
  205.                         unsigned long minSleep,
  206.                         short dollars);
  207. void CopyBugReportForm(long (*regCfgInfo)(Handle, long, StringPtr));
  208. OSErr AskForDestFile(StdFileResultPtr whichFile, ConstStr255Param prompt, StringPtr docName);
  209. void BCDVersNumToString(long num, StringPtr str);
  210. void BCDLongVersNumToString(long num, StringPtr str);
  211. Boolean TrapAvailable(short theTrap);
  212. OSErr InstallRequiredAEHandlers(AEEventHandlerProcPtr myOAPP,
  213.                                 AEEventHandlerProcPtr myODOC,
  214.                                 AEEventHandlerProcPtr myPDOC,
  215.                                 AEEventHandlerProcPtr myQUIT);
  216.  
  217. #pragma internal reset
  218.  
  219. //====================================================================
  220.  
  221. //#if GENERATING68K
  222. //#pragma parameter MyNumToString(__D0,__A0)
  223. //extern pascal void MyNumToString(long theNum,Str255 theString)
  224. // TWOWORDINLINE(0x4267, 0xA9EE);
  225. //#else
  226. #define    MyNumToString    NumToString
  227. //#endif
  228.  
  229. #define numOfLongs(s)    (((s)>>2) - 1L)
  230.  
  231. #define toMenu(m, i)    (((long)m << 16) + i)
  232. #define    CHARFROMMESSAGE(mess)    (*(((unsigned char *)(&(mess))) + 3))
  233. #define ISAPPWINDOW(w)    (((WindowPeek) w)->windowKind >= userKind)
  234. #define ISDAWINDOW(w)    (((WindowPeek) w)->windowKind < 0)
  235. #define isMovableModal(w)    (GetWVariant(w) == movableDBoxProc)
  236.  
  237. #define MAX(a, b)    ((a) > (b) ? (a) : (b))
  238. #define MIN(a, b)    ((a) < (b) ? (a) : (b))
  239.  
  240. /* Define HiWrd and LoWrd macros for efficiency. */
  241. #define HiWrd(aLong)    (short)(((unsigned long)aLong) >> 16)
  242. #define LoWrd(aLong)    (short)((aLong) & 0xFFFF)
  243.  
  244. #define PRCT_T(f)    (f->portRect.top)
  245. #define PRCT_L(f)    (f->portRect.left)
  246. #define PRCT_B(f)    (f->portRect.bottom)
  247. #define PRCT_R(f)    (f->portRect.right)
  248.  
  249.